Data are stored and retrieved from memory devices including volatile and non-volatile memories such as random access memory (RAM), FLASH memory, erasable programmable read only memory (EPROM), read only memory (ROM), magnetic and optical disks, or the like. Memories made of high-density integrated circuits are susceptible to transient single-bit errors caused by alpha particles, cosmic rays and similar radiation Alpha particles are found in lead solder and packaging materials. These events cause transient single-bit data errors, but do not cause permanent damage to the stored data. The transient single-bit data error corruptions are widely known as “Soft RAM Errors” if occurred in RAM memories. Soft RAM Errors, if uncorrected, can produce significant impacts to certain system operations. For instance, corrupted data bits can cause an intelligent electronic device (IED) such as a protection relay or another IED connected to the protection relay in an electric power grid to trip unnecessarily; disrupting manufacturing and causing productivity losses in affected areas.
Many previous inventions describe methods that add additional electronic circuits to the semiconductor memory to detect and correct errors in the data stored in the memory. A disadvantage with these inventions is that the additional circuits reduce the reliability, and increase the cost of the memory system. In addition, these inventions are usually inflexible since they are designed to correct one size of data only.
A known method to safeguard data accuracy is to use additional electronic hardware circuits to verify and correct data corruption in data streams during sending and receiving data. Such circuit functions include encoding, decoding, insertion of error codes into the data streams, detecting and correcting data errors using elaborate and complex algorithms that add delays. Some examples of such techniques and circuits are disclosed in U.S. Pat. Nos. 6,983,414 and 5,844,918, respectively. Using hardware circuits for data error correction techniques in data communication is well established, but the implementation is complex and costly. Also, these approaches are impossible to implement when the memory is integrated with the central processing unit (CPU) in the same electronic device. It is therefore desirable to have a method that checks and corrects data errors without added unreliability and without added hardware cost.
A general object of the present invention is, therefore, to therefore provide methods to detect and correct bit errors in data.
Another object of the present invention is to check and correct data errors in memory storage devices.
A further object of the present invention is to use known algorithms to perform error check and error corrections.
Yet another object of the present invention is to provide single-bit error-detection and correction to the data without altering the data format, thereby permitting un-encoded data to be accessed quickly and easily
A still further object of the present invention is to provide firmware programming to implement the methods of the present invention, wherein the firmware may be embedded in a microcontroller or field programmable gate array (FPGA).
Another object of the present invention is to implement the methods of the present invention in an intelligent electronic device (IED).